<?php
class CuentasController extends AppController {

	var $name = 'Cuentas';
	var $uses = array('Cuenta','Usuario','Movimiento');
	var $helpers = array('Html', 'Form');

	function index($usuarioId=null) {
//		print_r($this->Session->Read('Usuario'));
		$usuario=$this->Session->Read('Usuario');
		$this->set('tipoCuentaUsuario',$usuario['Grupo']['nombre']);
		$this->Cuenta->recursive = 0;
		$this->set('cuentas', $this->paginate());
		$cuentas=$this->Cuenta->find('all',array('conditions'=>array('usuario_id'=>$usuario['Usuario']['id'],'activo'=>1)));
		$this->set('ctaUsuario',$cuentas);


//		print_r($usuario['Cuenta']);
//		print_r($cuentas);
	}

	function view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid Cuenta.', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->set('cuenta', $this->Cuenta->read(null, $id));
	}

	function add($usuarioId=null) {
		$this->set('usuarioId',$usuarioId);
		if (!empty($this->data)) {
			//print_r($this->data);
			$this->Cuenta->create();
			//print_r($this->Cuenta);
			if ($this->Cuenta->save($this->data)) {
				$this->Session->setFlash(__('La Cuenta Ha Sido Guardada', true));
				$this->redirect(array('action'=>'index'));
			} else {
				$this->Session->setFlash(__('La Solicitud No Pudo Ser Procesada. Por Favor, Intente de Nuevo.', true));
			}
		}
		$usuarios = $this->Cuenta->Usuario->find('list');
		$this->set(compact('usuarios'));
	}

	function edit($id = null) {
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Cuenta Invalida', true));
			$this->redirect(array('action'=>'index'));
		}
		if (!empty($this->data)) {
			if ($this->Cuenta->save($this->data)) {
				$this->Session->setFlash(__('La Cuenta Ha Sido Modificada', true));
				$this->redirect(array('action'=>'index'));
			} else {
				$this->Session->setFlash(__('The Cuenta could not be saved. Please, try again.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Cuenta->read(null, $id);
		}
		$usuarios = $this->Cuenta->Usuario->find('list');
		$this->set(compact('usuarios'));
	}

	function delete($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid id for Cuenta', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->Cuenta->del($id)) {
			$this->Session->setFlash(__('Cuenta deleted', true));
			$this->redirect(array('action'=>'index'));
		}
	}
	function solicitud(){
				//$this->set('usuarioId',$usuarioId);
		$usuario=$this->Session->read('Usuario');
		$usuarioId=$usuario['Usuario']['id'];

		if (!empty($this->data)) {
			$this->data['Cuenta']['usuario_id']=$usuarioId;
			//print_r($this->data);
			$this->Cuenta->create();
			$this->data['Cuenta']['usuario_id']=$usuarioId;
			//print_r($this->Cuenta);
			if ($this->Cuenta->save($this->data)) {
				$this->Session->setFlash(__('La Solicitud de Cuenta Ha Sido Recibida', true));
				$this->redirect(array('action'=>'index'));
			} else {
				$this->Session->setFlash(__('The Cuenta could not be saved. Please, try again.', true));
			}
		}
		$usuarios = $this->Cuenta->Usuario->find('list');
		$this->set(compact('usuarios'));
	}
	function transferir($idCuenta=null){
			$usuario=$this->Session->Read('Usuario');
			$cuentas=$this->Cuenta->find('all',array('conditions'=>array('usuario_id'=>$usuario['Usuario']['id'],'activo'=>1)));
		$this->set('idCuenta',$idCuenta);
		if (!$idCuenta && empty($this->data)){
			$this->flash('No ha seleccionado una cuenta valida');
			$this->redirect('/cuentas/index');
		}
		if(!empty($this->data)){

			print_r($cuentas);
			$this->data['Cuenta']['numero'];
//			Agregarle el monto a la cuenta foranea
			$balanceActual=$this->Cuenta->findById($this->data['Cuenta']['numero']);
			$balanceActual=$this->data['Cuenta']['cantidad']+$balanceActual['Cuenta']['balanceactual'];
			$this->Cuenta->id=$this->data['Cuenta']['numero'];
			if($this->Cuenta->saveField('balanceactual',$balanceActual)){
//				Restarle el monto a la cuenta personal
				$balanceActual=$this->Cuenta->findById($idCuenta);
				if($balanceActual['Cuenta']['balanceactual']<0){
					$this->Session->setFlash(__('Usted tiene saldos insuficientes', true));
				}else{

					if($this->data['Cuenta']['numero']){
						$balanceActual=$balanceActual['Cuenta']['balanceactual']-$this->data['Cuenta']['cantidad'];
						$this->Cuenta->id=$idCuenta;
						$this->Cuenta->saveField('balanceactual',$balanceActual);
						$this->Session->setFlash(__('La Transaccion fue realizada con exito', true));

		//				Registrar Movimiento
		//				$this->Movimiento->save(array());
						$this->data['Movimiento']['cuenta_id']=$idCuenta;
						$this->data['Movimiento']['tipo']='Transferencia Web';
						$this->data['Movimiento']['monto']=$this->data['Cuenta']['cantidad'];
						$this->Movimiento->save($this->data);
					}
				}
			}


		}
	}
	function movimientos(){

	}


}
?>